SublimeText: O Melhor Editor
Meu primeiro editor de códigos foi o Notepad do Windows, onde comecei copiando e colando scripts da internet. Com o passar do tempo descobri o Notepad++ e aquele código colorido era de encher os olhos.
A possibilidade de fazer algumas customizações no Notepad++ também me agradava, embora não saber, logo de cara, o significado de cada coisa. Ah, e ele era em português! Gostava disso (me perdia no inglês, naquela época).
Com o passar do tempo utilizei alguns editores WYSIWYG como o NVU e o “todo poderoso” Dreamweaver. Realmente, a possibilidade de clicar em um botão ou customizar opções pela interface gráfica ajudaram muito. Ajudaram a entender os códigos gerados, porque, para mim, isso sempre foi o mais importante.
Trabalhar com o Dreamweaver, NetBeans ou as poderosas IDEs da JetBrains é algo sensacional. Facilitam o desenvolvimento e muito.
Porém, já há alguns anos meu editor do dia a dia tem sido o Sublime, gosto do Gedit, mas o Sublime é tão leve e customizável que o identifico como o melhor editor disponível. Falo de editor e não IDE.
Nesse artigo falarei sobre como instalar e realizar algumas configurações "básicas" no SublimeText em um ambiente Debian-based.
Instalação
O arquivo de instalação do SublimeText pode ser baixado diretamente no site.
Algo muito legal que o pessoal da Sublime HQ Pty Ltd fez esse ano foi criar repositórios para diversas distribuições Linux. Para quem não vive mais sem o APT, como eu, isso foi o máximo. Se bem que as versões do Sublime não mudam tão frequentemente, mas poder instalar ou atualizá-lo pela linha de comando facilita o processo.
Indo até essa página você terá as instruções de como adicionar os repositórios em seu Sistema Operacional.
Se nada mudou, no Debian é assim:
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
sudo apt install apt-transport-https
echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
Depois, basta instalar:
sudo apt update
sudo apt install sublime-text
Package Control
O SublimeText pode ser totalmente customizado e você pode adicionar recursos e tranformá-lo em uma IDE multi-linguagens.
O local mais popular onde podem ser encontrados milhares de pacotes é o Package Control.
O Package Control deve ser instalado para depois você poder utilizar seus recursos.
Aconselha-se que você sempre instale-o conforme as instruções oficiais.
Instalação do Package Control
Vá até o menu View > Show Console, cole o código abaixo e pressione Enter
:
import urllib.request,os,hashlib; h = '6f4c264a24d933ce70df5dedcf1dcaee' + 'ebe013ee18cced0ef93d5f746d80ef60'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
Feito isso você já podera instalar pacotes “automaticamente”.
Basta pressionar Ctrl + Shift + P
e selecionar a opção Package Control: Install Package (digite “pci”).
Depois basta pesquisar o pacote que você quer, selecioná-lo e pressionar Enter
.
Pacotes Essenciais para mim
Abaixo listo alguns pacotes muito úteis para tunar o SublimeText.
- A File Icon
- Advanced CSV
- All Autocomplete
- ApacheConf.tmLanguage
- ApplySyntax
- Auto Semi-Colon
- Blade Snippets
- Bootstrap 3 Snippets
- Bootstrap 4 Snippets
- BracketHighlighter
- Case Conversion
- ColorHelper
- Composer
- ComposerPackageInfo
- DocBlockr
- DocBlockr_Python
- DotENV
- EditorConfig
- Emmet
- ExtendedTabSwitcher
- Figlet Big ASCII Text
- Fold Comments
- Function Name Display
- FuzzyFilePath
- Git
- Git Config
- GitGutter
- HighlightWords
- Hosts
- Hover Image Preview
- HTML-CSS-JS Prettify
- Image2Base64
- INI
- IntelliDocs
- Jekyll
- Jinja2
- Keymaps
- Laravel Blade Highlighter
- LESS
- Liquid
- Load file to REPL
- LSP
- Markdown Extended
- Markdown Preview
- Minify
- nginx
- Package Control
- PHP Codebeautifier
- PHP-Twig
- phpunitkit
- ProjectManager
- Python PEP8 Autoformat
- Requester
- RestructuredText Improved
- SCSS
- SideBarEnhancements
- SublimeCodeIntel
- SublimeLinter
- SublimeLinter-contrib-htmllint
- SublimeLinter-csslint
- SublimeLinter-jshint
- SublimeLinter-json
- SublimeLinter-php
- SublimeLinter-pylint
- SublimeLinter-xmllint
- SublimeREPL
- SublimeTmpl
- SyncedSideBar
- TabsExtra
- Theme - One Dark
- TodoReview
- TrailingSpace
- Volt
Configurações
Preferences
{
"always_show_minimap_viewport": true,
"auto_complete_cycle": true,
"auto_complete_triggers":
[
{
"characters": "$>:\\",
"selector": "source.php"
},
{
"characters": ".",
"selector": "source.js"
},
{
"characters": ".",
"selector": "source.ts"
}
],
"auto_find_in_selection": true,
"binary_file_patterns":
[
"*.dds",
"*.eot",
"*.gif",
"*.ico",
"*.jar",
"*.jpeg",
"*.jpg",
"*.pdf",
"*.png",
"*.swf",
"*.tga",
"*.ttf",
"*.zip",
"*.phar",
"*.tar",
"*.tgz",
"*.gz",
"*.bz2",
"*.rar",
"*.ttf",
"*.eot",
"*.deb",
"*.exe",
"*.mp3",
"*.mp4",
"*.wma",
"*.3gp",
"*.eog"
],
"caret_extra_bottom": 1,
"close_windows_when_empty": false,
"color_scheme": "Packages/User/Color Highlighter/themes/One Dark (SL).tmTheme",
"default_line_ending": "unix",
"dictionary": "Packages/Language - English/en_US.dic",
"draw_minimap_border": true,
"figlet_font": "xtimes",
"folder_exclude_patterns":
[
".svn",
".git",
".hg",
"CVS",
".idea",
".sass-cache",
"_site",
"nbproject"
],
"font_size": 11,
"highlight_line": true,
"highlight_modified_tabs": true,
"ignored_packages":
[
"All Autocomplete",
"ApplySyntax",
"ComposerPackageInfo",
"Jekyll",
"LSP",
"Requester",
"RestructuredText",
"SublimeLinter-contrib-htmlhint",
"SublimeLinter-contrib-markdownlint",
"Vintage"
],
"line_padding_bottom": 1,
"line_padding_top": 2,
"mdpopups.user_css": "Packages/User/mdpopups.css",
"one_dark_show_scroll_tabs": false,
"one_dark_show_tabs_dropdown": true,
"overlay_scroll_bars": "enabled",
"phpunit.php_executable": "/usr/bin/php7.0",
"preview_on_click": true,
"rulers":
[
80
],
"show_encoding": true,
"show_line_endings": true,
"tab_size": 4,
"tabs_small": true,
"theme": "One Dark.sublime-theme",
"trim_trailing_white_space_on_save": false,
"word_wrap": true
}
Key Bindings
[
{ "keys": ["ctrl+\\"], "command": "toggle_side_bar" },
{ "keys": ["f12"], "command": "toggle_side_bar" },
{ "keys": ["ctrl+m"], "command": "toggle_minimap" },
{ "keys": ["ctrl+space"], "command": "code_intel_auto_complete" },
{ "keys": ["ctrl+d"], "command": "duplicate_line" },
{ "keys": ["ctrl+alt+l"], "command": "htmlprettify" },
{ "keys": ["ctrl+alt+l"], "command": "pep8_autoformat", "context": [{ "key": "selector", "operator": "equal", "operand": "source.python" }] },
{ "keys": ["ctrl+alt+l"], "command": "php_cbf", "context": [{ "key": "selector", "operator": "equal", "operand": "source.php" }] },
{ "keys": ["ctrl+shift+u"], "command": "phpunit_test_file", "context": [{ "key": "selector", "operator": "equal", "operand": "source.php" }] },
{ "keys": ["ctrl+alt+t"], "command": "toggle_trailing_spaces" },
{ "keys": ["shift+delete"], "command": "delete_trailing_spaces" },
{ "keys": ["ctrl+alt+b"], "command": "beautify" },
{ "keys": ["ctrl+alt+m"], "command": "minify" },
{ "keys": ["ctrl+shift+c"], "command": "color_highlighter_pick_color" },
{ "keys": ["ctrl+alt+n"], "command": "sublime_tmpl" },
{ "keys": ["ctrl+alt+m"], "command": "markdown_preview_select", "args": { "target": "browser" }},
{ "keys": ["ctrl+alt+c"], "command": "show_panel", "args": {"panel": "console", "toggle": true} },
{ "keys": ["f5"], "command": "load_file_to_repl", "args": { "clear": true, "save_focus": false }},
{ "keys": ["ctrl+down"], "command": "toggle_fold_comments" },
{ "keys": ["f2"], "command": "side_bar_rename" },
{ "keys": ["f5"], "command": "refresh_folder_list" },
{ "keys": ["alt+d"], "command": "side_bar_duplicate" },
{ "keys": ["f10"], "command": "lsp_symbol_definition" },
{ "keys": ["f1"], "command": "extended_switcher", "args": {"list_mode": "window"} },
]
SublimeCodeIntel.sublime-settings
{
"codeintel_tooltips": "popup",
// This empty enable completion of classes in phpdocs
"codeintel_exclude_scopes_from_complete_triggers": [],
"codeintel_database_dir": "~/.config/sublime-text-3/codeintel",
"codeintel_scan_exclude_dir":[
".svn",
".git",
".hg",
"CVS",
".idea",
".sass-cache",
"_site",
"nbproject",
"tests/coverage",
"var/cache",
"var/page_cache",
],
"codeintel_language_settings": {
"Python3": {
"python3": "/usr/bin/python3.6",
"codeintel_scan_extra_dir": [
"/home/natanfelles/.config/sublime-text-3/Packages/SublimeCodeIntel/arch",
"/home/natanfelles/.config/sublime-text-3/Packages/SublimeCodeIntel/libs",
"/usr/share/python",
"/usr/local/lib/python3.6",
],
"codeintel_scan_files_in_project": true,
"codeintel_max_recursive_dir_depth": 25,
"codeintel_selected_catalogs": []
},
"JavaScript": {
"codeintel_scan_extra_dir": [],
"codeintel_scan_exclude_dir":[],
"codeintel_scan_files_in_project": true,
"codeintel_max_recursive_dir_depth": 25,
"codeintel_selected_catalogs": ["jQuery","HTML5"],
"javascriptExtraPaths": []
},
"PHP": {
"php": "/usr/bin/php",
"codeintel_scan_extra_dir": [
//"/home/natanfelles/.config/composer/vendor/phalcon/ide-stubs/src/Phalcon",
"/home/natanfelles/.config/composer/vendor/jetbrains/phpstorm-stubs"
],
"codeintel_scan_files_in_project": true,
"codeintel_max_recursive_dir_depth": 25,
"codeintel_scan_exclude_dir":["/usr/bin/php"],
"phpConfigFile": "/etc/php/7.1/fpm/php.ini",
}
}
}
Auto-Completar, Docs, Templates, Plugins e Ajustes Finos
Quer transformar o SublimeText na mais poderosa, leve e rápida IDE para desenvolver em qualquer linguagem de programação?
Faça download do meu Sublime Text User Backup, com cerca de 40 templates para o SublimeTmpl, por apenas U$ 5 dólares.
O que acha de me comprar um café? Comprar um café